package com.xlh.virtualization.service;

import com.xlh.virtualization.po.ClipboardPO;
import com.xlh.virtualization.po.ResolutionAdjustPO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 虚拟化容器操作 Service
 *
 * @author cheer
 */
public interface ExperimentContainerService {

    /**
     * 调整容器VNC分辨率
     *
     * @param resolutionAdjustPO 容器VNC分辨率参数
     */
    void adjustResolution(ResolutionAdjustPO resolutionAdjustPO);

    /**
     * 返回容器的ftp连接地址
     *
     * @param containerId 容器Id
     * @return ftp连接地址
     */
    String getFtpAddress(Long containerId);

    /**
     * 将文件上传到容器
     *
     * @param containerId 容器Id
     * @param file        文件
     */
    void uploadFile(Long containerId, MultipartFile file);

    /**
     * 将文本复制到容器
     *
     * @param containerId 容器Id
     * @param clipboardPO     复制内容
     * @param isStudent   是否为学生
     */
    Boolean clipboard(Long containerId, ClipboardPO clipboardPO, Boolean isStudent);

    /**
     * 压缩用户在容器内保存的文件
     *
     * @param filePath 文件路径
     */
    void zipFile(String filePath);

    /**
     * 下载用户在容器内保存的文件
     *
     * @param filePath 文件路径
     * @param fileName 文件名称
     */
    void downloadFile(String filePath, String fileName);

    String getVncAddress(Long containerId);
}
